{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## The TX-TL Toolbox in BioCRNpyler\n", "\n", "### A recreation of the original MATLAB TxTl Toolbox, as seen in [Singhal et al. 2020](https://www.biorxiv.org/content/10.1101/2020.08.05.237990v1)\n", "\n", "This tutorial shows how to use the EnergyTxTlExtract Mixture with a parameter file derived from the paper above. This Mixture is a simplification of the models used in the original toolbox. Notable changes include:\n", "1. Using only a single nucleotide species NTPs (instead of GTP, ATP, UTP, and CTP)\n", "2. A slightly different NTP regeneration Mechanism which explicitly incorporates the amount of fuel, 3PGA, put into the extract and metabolic leak of the extract.\n", "3. Degredation of RNA bound to ribosomes (which releases the ribosome).\n", "4. A modification of the Energy consumption reactions for Transcription and Translation so that there is only a single binding reaction.\n", "\n", "### The CRN displayed below shows the energy utilization process model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Species(N = 8) = {\n", " metabolite[amino_acids] (@ 30000.0), \n", " found_key=(mech=initial concentration, partid=None, name=amino_acids).\n", " search_key=(mech=initial concentration, partid=, name=amino_acids).\n", "\n", " metabolite[Fuel_3PGA] (@ 30000.0), \n", " found_key=(mech=initial concentration, partid=None, name=Fuel_3PGA).\n", " search_key=(mech=initial concentration, partid=, name=Fuel_3PGA).\n", "\n", " metabolite[NTPs] (@ 5000.0), \n", " found_key=(mech=initial concentration, partid=None, name=NTPs).\n", " search_key=(mech=initial concentration, partid=, name=NTPs).\n", "\n", " metabolite[ATP] (@ 5000.0), \n", " found_key=(mech=initial concentration, partid=None, name=ATP).\n", " search_key=(mech=initial concentration, partid=, name=ATP).\n", "\n", " protein[Ribo] (@ 10.0), \n", " found_key=(mech=initial concentration, partid=None, name=Ribo).\n", " search_key=(mech=initial concentration, partid=, name=Ribo).\n", "\n", " protein[RNAP] (@ 0.5), \n", " found_key=(mech=initial concentration, partid=None, name=RNAP).\n", " search_key=(mech=initial concentration, partid=, name=RNAP).\n", "\n", " protein[RNase] (@ 0.25), \n", " found_key=(mech=initial concentration, partid=None, name=RNase).\n", " search_key=(mech=initial concentration, partid=, name=RNase).\n", "\n", " metabolite[ADP] (@ 0), \n", "}\n", "\n", "Reactions (2) = [\n", "0. metabolite[Fuel_3PGA]+metabolite[ADP] --> metabolite[ATP]\n", " Kf=k_forward * metabolite_Fuel_3PGA * metabolite_ADP\n", " k_forward=0.02\n", " found_key=(mech=one_step_pathway, partid=ATP_production, name=k).\n", " search_key=(mech=one_step_pathway, partid=ATP_production, name=k).\n", "\n", "1. metabolite[ATP] --> metabolite[ADP]\n", " Kf=k_forward * metabolite_ATP\n", " k_forward=1.77e-05\n", " found_key=(mech=one_step_pathway, partid=ATP_degradation, name=k).\n", " search_key=(mech=one_step_pathway, partid=ATP_degradation, name=k).\n", "\n", "]\n" ] }, { "data": { "image/png": "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oENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREssWgQ0RERLLFoENERESyxaBDREREsmVT0FmxYgXuu+8+aDQa+Pv7Y/z48Th9+rRFGyEEkpKSEBwcDLVajeHDh+PkyZMWbYxGI+bMmQNfX1+4ublh3LhxuHjxokWb4uJi6HQ6aLVaaLVa6HQ6lJSUWLTJz89HXFwc3Nzc4Ovri7lz58JkMtlySERERCRjNgWdtLQ0zJ49GwcOHMDu3btRU1OD6OhoVFRUSG3eeOMNvP3221izZg0OHTqEwMBAPPjggygrK5PaJCYmYuvWrUhOTkZ6ejrKy8sRGxuL2tpaqc3kyZORnZ2N1NRUpKamIjs7GzqdTlpfW1uLsWPHoqKiAunp6UhOTsaWLVuwYMGC1pwPIiIikhPRCkVFRQKASEtLE0IIYTabRWBgoFi5cqXUpqqqSmi1WvHee+8JIYQoKSkRzs7OIjk5WWrzyy+/CAcHB5GamiqEECInJ0cAEAcOHJDa7N+/XwAQP/74oxBCiJSUFOHg4CB++eUXqc2mTZuESqUSer3eqvr1er0AYHV7IiIisj9bvr+dWhOS9Ho9AMDb2xsAkJubi8LCQkRHR0ttVCoVhg0bhoyMDDz99NPIyspCdXW1RZvg4GBEREQgIyMDMTEx2L9/P7RaLQYOHCi1GTRoELRaLTIyMhAeHo79+/cjIiICwcHBUpuYmBgYjUZkZWVhxIgRjeo1Go0wGo3S+9LS0tYcPhHd5cxmM4fLidqBs7MzHB0d22RbLQ46QgjMnz8fQ4YMQUREBACgsLAQABAQEGDRNiAgAOfPn5faKJVKeHl5NWpT9/nCwkL4+/s32qe/v79F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bV25ckXqxQkMDGz0JNzi4mJUV1c3ewmgSqWy6bbYREQ34+DgwDsjE93m2n1g+dq1a7hw4QKCgoIAAP3794ezszN2794ttSkoKMCJEyekoBMZGQm9Xo/MzEypzcGDB6HX6y3anDhxAgUFBVKbXbt2QaVSoX///u19WERERHQHsLlHp7y8HGfPnpXe1z0Z1tvbG97e3khKSsKECRMQFBSEvLw8LFmyBL6+vvjjH/8IANBqtZgxYwYWLFgAHx8feHt7Y+HChejdu7d0FVaPHj0wevRoxMfHY926dQCAmTNnIjY2FuHh4QCA6Oho9OzZEzqdDqtWrcL169excOFCxMfH84orIiIiukHYaO/evQJAo9fUqVNFZWWliI6OFn5+fsLZ2Vl07NhRTJ06VeTn51tsw2AwiISEBOHt7S3UarWIjY1t1ObatWtiypQpQqPRCI1GI6ZMmSKKi4st2pw/f16MHTtWqNVq4e3tLRISEkRVVZXVx6LX6wUAodfrbT0NREREZCe2fH/z6eV8ejkREdEdhU8vJyIiIgKDDhEREckYgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREckWgw4RERHJFoMOERERyRaDDhEREcmWzUHn+++/R1xcHIKDg6FQKLBt2zaL9UIIJCUlITg4GGq1GsOHD8fJkyct2hiNRsyZMwe+vr5wc3PDuHHjcPHiRYs2xcXF0Ol00Gq10Gq10Ol0KCkpsWiTn5+PuLg4uLm5wdfXF3PnzoXJZLL1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from biocrnpyler.mixtures import EnergyTxTlExtract\n", "#A = DNAassembly(\"A\", promoter = \"P\", rbs = \"rbs\")\n", "E = EnergyTxTlExtract(parameter_file = 'mixtures/extract_parameters.tsv')\n", "CRN = E.compile_crn()\n", "print(CRN.pretty_print())\n", "try:\n", " import numpy as np\n", " maxtime = 30000\n", " timepoints = np.arange(0, maxtime, 100)\n", " R = CRN.simulate_with_bioscrape_via_sbml(timepoints)\n", " if R is not None:\n", " import pylab as plt\n", " plt.plot(timepoints, R[str(E.ntps.get_species())], label = E.ntps.get_species())\n", " plt.plot(timepoints, R[str(E.amino_acids.get_species())], label = E.amino_acids.get_species())\n", " plt.plot(timepoints, R[str(E.fuel.get_species())], label = E.fuel.get_species())\n", " plt.xticks(np.arange(0, maxtime, 3600), [str(i) for i in range(0, int(np.ceil(maxtime/3600)))])\n", " plt.legend()\n", "except ModuleNotFoundError:\n", " print('please install the plotting libraries: pip install biocrnpyler[all]')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Adding a DNA assembly \n", "This will produce protein expression, but for a limited time. The" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Species(N = 15) = {\n", " metabolite[amino_acids] (@ 30000.0), \n", " found_key=(mech=initial concentration, partid=None, name=amino_acids).\n", " search_key=(mech=initial concentration, partid=, name=amino_acids).\n", "\n", " metabolite[Fuel_3PGA] (@ 30000.0), \n", " found_key=(mech=initial concentration, partid=None, name=Fuel_3PGA).\n", " search_key=(mech=initial concentration, partid=, name=Fuel_3PGA).\n", "\n", " metabolite[NTPs] (@ 5000.0), \n", " found_key=(mech=initial concentration, partid=None, name=NTPs).\n", " search_key=(mech=initial concentration, partid=, name=NTPs).\n", "\n", " metabolite[ATP] (@ 5000.0), \n", " found_key=(mech=initial concentration, partid=None, name=ATP).\n", " search_key=(mech=initial concentration, partid=, name=ATP).\n", "\n", " protein[Ribo] (@ 10.0), \n", " found_key=(mech=initial concentration, partid=None, name=Ribo).\n", " search_key=(mech=initial concentration, partid=, name=Ribo).\n", "\n", " protein[RNAP] (@ 0.5), \n", " found_key=(mech=initial concentration, partid=None, name=RNAP).\n", " search_key=(mech=initial concentration, partid=, name=RNAP).\n", "\n", " protein[RNase] (@ 0.25), \n", " found_key=(mech=initial concentration, partid=None, name=RNase).\n", " search_key=(mech=initial concentration, partid=, name=RNase).\n", "\n", " complex[protein[Ribo]:rna[A]] (@ 0), \n", " complex[protein[RNase]:rna[A]] (@ 0), \n", " complex[dna[A]:protein[RNAP]] (@ 0), \n", " complex[complex[protein[Ribo]:rna[A]]:protein[RNase]] (@ 0), \n", " metabolite[ADP] (@ 0), \n", " protein[A] (@ 0), \n", " rna[A] (@ 0), \n", " dna[A] (@ 0), \n", "}\n", "\n", "Reactions (12) = [\n", "0. dna[A]+protein[RNAP] <--> complex[dna[A]:protein[RNAP]]\n", " Kf=k_forward * dna_A * protein_RNAP\n", " Kr=k_reverse * complex_dna_A_protein_RNAP_\n", " k_forward=4.48\n", " found_key=(mech=energy_transcription_mm, partid=None, name=kb).\n", " search_key=(mech=energy_transcription_mm, partid=P, name=kb).\n", " k_reverse=2.5e-06\n", " found_key=(mech=energy_transcription_mm, partid=None, name=ku).\n", " search_key=(mech=energy_transcription_mm, partid=P, name=ku).\n", "\n", "1. metabolite[NTPs]+complex[dna[A]:protein[RNAP]] --> metabolite[NTPs]+dna[A]+protein[RNAP]+rna[A]\n", " Kf=k_forward * metabolite_NTPs * complex_dna_A_protein_RNAP_\n", " k_forward=5e-05\n", "\n", "2. metabolite[NTPs]+complex[dna[A]:protein[RNAP]] --> complex[dna[A]:protein[RNAP]]\n", " Kf=k_forward * metabolite_NTPs * complex_dna_A_protein_RNAP_\n", " k_forward=0.05\n", " found_key=(mech=energy_transcription_mm, partid=None, name=ktx).\n", " search_key=(mech=energy_transcription_mm, partid=P, name=ktx).\n", "\n", "3. rna[A]+protein[Ribo] <--> complex[protein[Ribo]:rna[A]]\n", " Kf=k_forward * rna_A * protein_Ribo\n", " Kr=k_reverse * complex_protein_Ribo_rna_A_\n", " k_forward=0.819\n", " found_key=(mech=energy_translation_mm, partid=None, name=kb).\n", " search_key=(mech=energy_translation_mm, partid=rbs, name=kb).\n", " k_reverse=0.003\n", " found_key=(mech=energy_translation_mm, partid=None, name=ku).\n", " search_key=(mech=energy_translation_mm, partid=rbs, name=ku).\n", "\n", "4. 4metabolite[ATP]+metabolite[amino_acids]+complex[protein[Ribo]:rna[A]] --> 4metabolite[ATP]+metabolite[amino_acids]+rna[A]+protein[Ribo]+protein[A]\n", " Kf=k_forward * metabolite_ATP^4 * metabolite_amino_acids * complex_protein_Ribo_rna_A_\n", " k_forward=0.0001666666666666667\n", "\n", "5. 4metabolite[ATP]+metabolite[amino_acids]+complex[protein[Ribo]:rna[A]] --> complex[protein[Ribo]:rna[A]]+4metabolite[ADP]\n", " Kf=k_forward * metabolite_ATP^4 * metabolite_amino_acids * complex_protein_Ribo_rna_A_\n", " k_forward=0.05\n", " found_key=(mech=energy_translation_mm, partid=None, name=ktl).\n", " search_key=(mech=energy_translation_mm, partid=rbs, name=ktl).\n", "\n", "6. metabolite[Fuel_3PGA]+metabolite[ADP] --> metabolite[ATP]\n", " Kf=k_forward * metabolite_Fuel_3PGA * metabolite_ADP\n", " k_forward=0.02\n", " found_key=(mech=one_step_pathway, partid=ATP_production, name=k).\n", " search_key=(mech=one_step_pathway, partid=ATP_production, name=k).\n", "\n", "7. metabolite[ATP] --> metabolite[ADP]\n", " Kf=k_forward * metabolite_ATP\n", " k_forward=1.77e-05\n", " found_key=(mech=one_step_pathway, partid=ATP_degradation, name=k).\n", " search_key=(mech=one_step_pathway, partid=ATP_degradation, name=k).\n", "\n", "8. complex[protein[Ribo]:rna[A]]+protein[RNase] <--> complex[complex[protein[Ribo]:rna[A]]:protein[RNase]]\n", " Kf=k_forward * complex_protein_Ribo_rna_A_ * protein_RNase\n", " Kr=k_reverse * complex_complex_protein_Ribo_rna_A__protein_RNase_\n", " k_forward=1.0\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kb).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_A_, name=kb).\n", " k_reverse=1.25e-06\n", " found_key=(mech=rna_degradation_mm, partid=None, name=ku).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_A_, name=ku).\n", "\n", "9. complex[complex[protein[Ribo]:rna[A]]:protein[RNase]] --> protein[Ribo]+protein[RNase]\n", " Kf=k_forward * complex_complex_protein_Ribo_rna_A__protein_RNase_\n", " k_forward=0.00013\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kdeg).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_A_, name=kdeg).\n", "\n", "10. rna[A]+protein[RNase] <--> complex[protein[RNase]:rna[A]]\n", " Kf=k_forward * rna_A * protein_RNase\n", " Kr=k_reverse * complex_protein_RNase_rna_A_\n", " k_forward=1.0\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kb).\n", " search_key=(mech=rna_degradation_mm, partid=rna_A, name=kb).\n", " k_reverse=1.25e-06\n", " found_key=(mech=rna_degradation_mm, partid=None, name=ku).\n", " search_key=(mech=rna_degradation_mm, partid=rna_A, name=ku).\n", "\n", "11. complex[protein[RNase]:rna[A]] --> protein[RNase]\n", " Kf=k_forward * complex_protein_RNase_rna_A_\n", " k_forward=0.00013\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kdeg).\n", " search_key=(mech=rna_degradation_mm, partid=rna_A, name=kdeg).\n", "\n", "]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from biocrnpyler.components import DNAassembly\n", "from biocrnpyler.mixtures import EnergyTxTlExtract\n", "import numpy as np\n", "import pylab as plt\n", "\n", "\n", "A = DNAassembly(\"A\", promoter = \"P\",\n", " rbs = \"rbs\")\n", "E = EnergyTxTlExtract(components = [A],\n", " parameter_file = 'mixtures/extract_parameters.tsv')\n", "\n", "CRN = E.compile_crn()\n", "\n", "print(CRN.pretty_print())\n", "try:\n", " maxtime = 30000\n", " timepoints = np.arange(0, maxtime, 100)\n", " # set mrna degradation resource \n", " x0_dict = {E.rnase.get_species(): 0, A.dna: 1e-6}\n", " R = CRN.simulate_with_bioscrape_via_sbml(timepoints,\n", " initial_condition_dict=x0_dict)\n", " if R is not None:\n", " plt.subplot(121)\n", " plt.plot(timepoints, R[str(E.ntps.get_species())], label = E.ntps.get_species())\n", " plt.plot(timepoints, R[str(E.amino_acids.get_species())], label = E.amino_acids.get_species())\n", " plt.plot(timepoints, R[str(E.fuel.get_species())], label = E.fuel.get_species())\n", " plt.xticks(np.arange(0, maxtime, 3600), [str(i) for i in range(0, int(np.ceil(maxtime/3600)))])\n", " plt.legend()\n", " \n", " plt.subplot(122)\n", " plt.plot(timepoints, R[str(A.transcript)], label = A.transcript)\n", " plt.plot(timepoints, R[str(A.protein)], label = A.protein)\n", " plt.xticks(np.arange(0, maxtime, 3600), [str(i) for i in range(0, int(np.ceil(maxtime/3600)))])\n", " plt.legend()\n", "except ModuleNotFoundError:\n", " print('please install the plotting libraries: pip install biocrnpyler[all]')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "biocrnpyler.core.species.Species" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(A.dna)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[dna_A,\n", " protein_RNAP,\n", " rna_A,\n", " metabolite_NTPs,\n", " complex_dna_A_protein_RNAP_,\n", " metabolite_ATP,\n", " metabolite_amino_acids,\n", " protein_Ribo,\n", " protein_A,\n", " complex_protein_Ribo_rna_A_,\n", " protein_RNase,\n", " metabolite_Fuel_3PGA,\n", " metabolite_ADP,\n", " complex_complex_protein_Ribo_rna_A__protein_RNase_,\n", " complex_protein_RNase_rna_A_]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CRN.species" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# End" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.12" } }, "nbformat": 4, "nbformat_minor": 4 }